package com.piggy.logi.sys.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 代收货款对象 logi_waybill_agent_pay
 *
 * @author fengxy
 * @date 2023/10/17 20:29
 **/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("logi_waybill_agent_pay")
public class LogiWaybillAgentPay implements Serializable {

    private static final long serialVersionUID=1L;

    /** 主键 */
    @ApiModelProperty("主键")
    @TableId(value = "id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 状态：0.未结清 1.已结清 */
    @ApiModelProperty("状态：0.未结清 1.已结清")
    private Integer status;

    /** 部门ID */
    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    /** 运单ID */
    @ApiModelProperty("运单ID")
    private Long waybillId;

    /** 运单编号 */
    @ApiModelProperty(value = "运单编号")
    private String outCode;

    /** 付款方ID */
    @ApiModelProperty("付款方ID")
    private Long payerId;

    /** 发货方ID */
    @ApiModelProperty("发货方ID")
    private Long shipId;

    /** 收货方ID */
    @ApiModelProperty("收货方ID")
    private Long deliveryId;

    /** 实收金额 */
    @ApiModelProperty("实收金额")
    private BigDecimal realAmount;

    /** 实收余额 */
    @ApiModelProperty("实收余额")
    private BigDecimal realBalance;

    /** 收款记录数量 */
    @ApiModelProperty("收款记录数量")
    private Integer recordNum;

    /** 乐观锁 */
    @ApiModelProperty("乐观锁")
    @Version
    private Integer version;

    /** 删除标志（0代表存在 2代表删除） */
    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    @TableLogic
    private String delFlag;

    /** 创建者 */
    @ApiModelProperty("创建者")
    private String createBy;

    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT)
    private Date updateTime;

}
